在前面兩天簡單介紹了一下decision tree的原理,今天來談談如何把樹變成一片森林~
Ramdom forest基本上就是採用團結力量大的方式來種很多不同的樹,最後再把每棵樹預測的結果總和,跟decision tree一樣:如果是分類問題就採取多數決,如果是數值預測問題就採用平均數,random forest的好處在於:
如果我們想要種很多不同的樹,但每棵樹我們都給他一模一樣的training data,那長出來的樹都會一樣,這樣就是白忙一場~ 所以第一個隨機的部分就在於:對於每棵樹,我都給他不同的training data,抽取的辦法有一個專門的詞叫做“Bagging”,具體的方法是:我從所有的資料裡面抽取n個資料形成一個子樣本(放回再抽下一個,所以資料可!以!重!複!),這件事重複做很多次,取決於你想要幾棵樹就做幾次。
小小補充:bagging 的全稱叫做“boostrap aggregating”,上面提到的重複抽取樣本的方法,就叫“boostrap”,而後續把不同樹的預測總結就是aggregate!
另外一個隨機的部分就是參數的數量,如果資料總共有10個參數(x1,x2...x10),每棵樹也隨機給他m個就好,這樣的目的也算是在讓每棵樹都可以專注在小範圍的資料子集合,這樣的方法就是“feature randomness”。
因為每棵樹的參數數量以及資料都比較小,所以種樹的效率很高,也因此我們可以很快的就種出一片森林囉!
reference:
https://www.youtube.com/watch?v=cIbj0WuK41w